package com.rc.web.mapper;

import com.mybatisflex.core.BaseMapper;
import com.mybatisflex.core.query.QueryWrapper;
import com.rc.pojo.po.History;
import org.apache.ibatis.annotations.Insert;

import java.util.List;

import static com.mybatisflex.core.query.QueryMethods.count;
import static com.rc.pojo.po.table.HistoryTableDef.HISTORY;

/**
 * 历史记录表 映射层。
 * 提供历史记录相关的数据库操作接口
 */
public interface HistoryMapper extends BaseMapper<History> {

    /**
     * 插入历史记录（固定SQL）
     * @param history 历史记录实体
     * @return 插入结果
     */
    @Insert("insert into rc.history(\"CON_ID\",\"KEYWORD\") values(#{conId}, #{keyword})")
    int insertFix(History history);

    /**
     * 查询最近六条热门搜索关键词
     * @return 关键词列表
     */
    default List<String> selectLastSix() {
        return selectListByQueryAs(QueryWrapper.create()
                        .select(HISTORY.KEYWORD) // 选择关键词字段
                        .groupBy(HISTORY.KEYWORD) // 按关键词分组
                        .orderBy(count().desc()) // 按出现次数降序排序
                        .limit(6) // 限制返回6条记录
                ,String.class
        );
    }
}
